home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / mc / extfs / rpms < prev    next >
Text File  |  2009-10-25  |  2KB  |  67 lines

  1. #! /usr/bin/perl
  2. #
  3. # Written by Balazs Nagy (julian7@kva.hu) 1998
  4. # locale bugfix by Michal Svec (rebel@penguin.cz) 2000
  5. # (C) 1998 The Free Software Foundation.
  6. #
  7. #
  8.  
  9. # override any locale for dates
  10. delete $ENV{"LC_ALL"};
  11. $ENV{"LC_TIME"}="C";
  12.  
  13. #print $ENV{"LC_ALL"};
  14. #exit 0;
  15.  
  16. sub gd
  17. {
  18.     my ($dt) = @_;
  19.     $dt =~ tr/ //s;
  20.     $dt =~ s/^\w+ (\w+) (\d+) (\d+:\d+):\d+ .+\n?$/$1 $2 $3/;
  21.     return $dt;
  22. }
  23.  
  24. $DATE=gd(`date`);
  25.  
  26. sub list
  27. {
  28.     my (@rpms, %files, $i, $fn, $dn, $sz, $bt);
  29. #    @rpms = `rpm -qa --qf "\%{NAME}-\%{VERSION}-\%{RELEASE}:\%{GROUP}:\%{SIZE}:\%{BUILDTIME:date}\n"`;
  30.     @rpms = `rpm -qa --qf "\%{NAME}-\%{VERSION}:\%{GROUP}:\%{SIZE}:\%{BUILDTIME:date}\n"`;
  31.     print @trpms;
  32.     %files = ();
  33.     %sizes = ();
  34.     %dates = ();
  35.     for $i (@rpms) {
  36.     if ($i =~ /^([^:]+):([^:]+):([^:]+):(.+)$/) {
  37.         ($fn, $dn, $sz, $bt) = ($1, $2, $3, $4);
  38.         $dn =~ s/ /_/g;
  39.         if (defined $files{$dn}) {
  40.         push(@{$files{$dn}}, $fn);
  41.         } else {
  42.         @{$files{$dn}} = ($fn);
  43.         }
  44.         $sizes{$fn} = $sz;
  45.         $dates{$fn} = gd($bt);
  46.     }
  47.     }
  48.     for $i (sort keys %files) {
  49.     print "dr-xr-xr-x 1 root root 0 $DATE $i/\n";
  50.     for $fn (sort @{$files{$i}}) {
  51.         print "-r--r--r-- 1 root root $sizes{$fn} $dates{$fn} $i/$fn.trpm\n";
  52.     }
  53.     }
  54. }
  55.  
  56. #open O, ">>/tmp/tt";
  57. #print O "RPMS: ";
  58. #for $i (@ARGV) {
  59. #    print O "$i ";
  60. #}
  61. #print O "\n";
  62. #close O;
  63.  
  64. if ($ARGV[0] eq "list") { list(); exit(0); }
  65. elsif ($ARGV[0] eq "copyout") { open O, ">$ARGV[3]"; print O $ARGV[2], "\n"; close O; exit(0); }
  66. exit(1);
  67.